// 网卡 MAC 地址记录
var mac = [];

$(function() {
	initData();
	initIpSearchButton();
	initMacSearchButton();
	initInputClick();
	initInputKeyUp();
	initOfficeSearchButton();
	initOfficeInputKeyUp();
});

// 初始化数据
function initData()
{
	var url = "mac_data.txt";
	$.get(url, function(text) {
		var lines = text.split("\n");
		$.each(lines, function(i, n) {
			if ($.trim(n) != "")
			{
				var l = n.split(/\s+/);
				l[2] = (l[2] != undefined) ? l[2] : ""; 
				mac[i] = l;
			}
		});
	});
}

// 初始化 IP 查询按钮
function initIpSearchButton()
{
	$("#ip_search").click(function() {
		findIpAddress();
	});
}

// 初始化 MAC 查询按钮
function initMacSearchButton()
{
	$("#mac_search").click(function() {
		findMacAddress();
	});
}

// 初始化地址输入框点击
function initInputClick()
{
	$(".mac_input, .office_input").click(function() {
		$(this).focus().select();
	});
}

// 初始化 MAC 地址输入框 
function initInputKeyUp()
{
	var last = $(".mac_input:last");
	$(".mac_input").keyup(function(event){
		if (event.keyCode == 13)
		{
			findMacAddress();
		}
		else if (event.keyCode == 32)
		{
			$(".mac_input:first").focus().select();
			return false;
		}
		else
		{
			if ($(this).val().length == 2) {
				// if ($(this).attr("id") != "m6")
				if ($(this).not(last))
				{
					$(this).next().focus().select();
				}
			}
		}
	});
	var ip_last = $(".ip_input:last");
	$(".ip_input").keyup(function(event) {
		if (event.keyCode == 13)
		{
			findIpAddress();
		}
		else if (event.keyCode == 32)
		{
			$(".ip_input:first").focus().select();
			return false;
		}
		else if (event.keyCode == 190)
		{
			if (/\.$/.test($(this).val()))
			{
				var str = $(this).val().match(/^[0-9]{1,3}/);
				$(this).val(str);
			}
			if ($(this).not(ip_last))
			{
				$(this).next().focus().select();
			}
		}
	});
}

// 初始化办公室查询按钮
function initOfficeSearchButton()
{
	$("#office_search").click(function() {
		findOfficeMacAddress();
		return false;
	});
}

// 初始化办公室查询输入框热键
function initOfficeInputKeyUp()
{
	$(".office_input").keyup(function(event){
		if (event.keyCode == 13)
		{
			findOfficeMacAddress();
		}
	});
}

// 通过 IP 查询数据
function findIpAddress()
{
	var flag = true;
	$(".ip_input").each(function(i) {
		if (!/^[0-9]{1,3}$/.test($(this).val()) || $(this).val() > 255 || $(this).val() < 0)
		{ alert("第 " + (i + 1) + " 框数据有误！"); flag = false; $(this).focus().select(); return false; }
	});
	if (flag)
	{
		var ip_str = [];
		$(".ip_input").each(function() {
			ip_str[ip_str.length] = $(this).val();
		});
		ip_str = ip_str.join(".");
		var found = false;
		$.each(mac, function(i, n) {
			if (ip_str == n[1])
			{
				$("#ip_search_result").html("")
					.append("办公室编号： " + n[0])
					.append("<br />")
					.append("IP 地址： " + n[1])
					.append("<br />")
					.append("MAC 地址： " + n[2].toUpperCase())
					.append("<br />")
					.append("使用者姓名： " + n[3])
				.show();
				found = true;
				return false;
			}
		});
		if (found == false) {
			$("#ip_search_result").html("抱歉！没找到相应的数据！").show();
		}
	}
}

// 查询数据
function findMacAddress()
{
	var flag = true;
	$(".mac_input").each(function(i) {
		if ($(this).val().length != 2 || !/^[0-9a-fA-F]{2}$/.test($(this).val()))
		{ alert("第 " + (i + 1) + " 框数据有误！"); flag = false; $(this).focus().select(); return false; }
	});
	if (flag)
	{
		var mac_str = "";
		$(".mac_input").each(function() {
			mac_str += "" + $(this).val();
		});
		mac_str = mac_str.toUpperCase();
		var found = false;
		$.each(mac, function(i, n) {
			if (mac_str == n[2].toUpperCase())
			{
				$("#mac_search_result").html("")
					.append("办公室编号： " + n[0])
					.append("<br />")
					.append("IP 地址： " + n[1])
					.append("<br />")
					.append("MAC 地址： " + n[2].toUpperCase())
					.append("<br />")
					.append("使用者姓名： " + n[3])
				.show();
				found = true;
				return false;
			}
		});
		if (found == false) {
			$("#mac_search_result").html("抱歉！没找到相应的数据！").show();
		}
	}
}

// 办公室数据查询
function findOfficeMacAddress()
{
	var office = $.trim($("#office").val());
	var osb = $("#office_search_body");
	if (office == "")
	{
		osb.html("");
		$.each(mac, function(i, n) {
			osb.append($("<tr></tr>")
				.append($("<td></td>").html(n[0]))
				.append($("<td></td>").html(n[1]))
				.append($("<td></td>").html(n[2]))
				.append($("<td></td>").html(n[3]))
			);
		});
	}
	else
	{
		if (!/^\d{3,4}$/.test(office)) { alert("请输入正确的办公室编号！"); $("#office").focus().select(); return false; }
		osb.html("");
		$.each(mac, function(i, n) {
			if (office == n[0]) {
				osb.append($("<tr></tr>")
					.append($("<td></td>").html(n[0]))
					.append($("<td></td>").html(n[1]))
					.append($("<td></td>").html(n[2]))
					.append($("<td></td>").html(n[3]))
				);
			}
		});
	}
}
